<?php

namespace App\Providers;

use App\Repositories\Eloquent\CustomPassword;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Auth;

class AuthServiceProvider extends ServiceProvider {
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
    ];

    /**
     * Register any application authentication / authorization services.
     *
     * @param  \Illuminate\Contracts\Auth\Access\Gate $gate
     * @return void
     */
    public function boot (GateContract $gate) {
        Auth::provider('custom', function ($app, array $config) {
            $model = $config['model'];
            return new CustomUserProvider(new CustomPassword(), $model); //自定义的
        });
        $this->registerPolicies($gate);
        //
    }
}
